﻿using System.Collections.Generic;
using System.Linq;

namespace TestUp.Models.Helpers
{
    public class PendingTestsHelper
    {
        public PendingTest GetPendingTest(int pendingTestId)
        {
            return DataWorkItem.Entity.PendingTests.FirstOrDefault(x => x.PendingTestId == pendingTestId);
        }

        public List<PendingTest> GetPendingTests(int groupId)
        {
            return DataWorkItem.Entity.PendingTests.Where(x => x.GroupId == groupId).ToList();
        }

        public void DeletePendingTest(int pendingTestId)
        {
            var pendingTest = GetPendingTest(pendingTestId);
            if (pendingTest != null)
            {
                DataWorkItem.Entity.PendingTests.Remove(pendingTest);
                DataWorkItem.Entity.SaveChanges();
            }
        }

        public void CreatePendingTest(PendingTest newPendingTest)
        {
            var pendingTest = DataWorkItem.Entity.PendingTests.Add(new PendingTest
                {
                    GroupId = newPendingTest.GroupId,
                    TestId = newPendingTest.TestId,
                    ExpirationDate = newPendingTest.ExpirationDate
                });
            DataWorkItem.Entity.PendingTests.Add(pendingTest);
            DataWorkItem.Entity.SaveChanges();
        }

        public void UpdatePendingTest(PendingTest sourcePendingTest)
        {
            var originalPendingTest = GetPendingTest(sourcePendingTest.PendingTestId);
            if (originalPendingTest != null)
            {
                //Update fields
                originalPendingTest.TestId = sourcePendingTest.TestId;
                originalPendingTest.GroupId = sourcePendingTest.GroupId;
                originalPendingTest.ExpirationDate = sourcePendingTest.ExpirationDate;

                DataWorkItem.Entity.SaveChanges();
            }
        }
    }
}